(define l
  ((lambda (f) (f (lambda (f) (lambda (z) (f (f (f (f (f z)))))))))
   (((lambda (y) (lambda (F) (F (lambda (x) (((y y) F) x)))))
     (lambda (y) (lambda (F) (F (lambda (x) (((y y) F) x))))))
    (lambda (f)
      (lambda (n)
	((((((lambda (n)
	       ((n (lambda (_) (lambda (t) (lambda (f) (f (lambda (void) void))))))
		(lambda (t) (lambda (f) (t (lambda (void) void))))))
	     (((lambda (n)
		 (lambda (m)
		   ((m
		     (lambda (n)
		       (lambda (f)
			 (lambda (z)
			   (((n (lambda (g) (lambda (h) (h (g f)))))
			     (lambda (u) z))
			    (lambda (u) u))))))
		    n)))
	       n)
	      (lambda (f) (lambda (z) z))))
	    (lambda (_)
	      ((lambda (n)
		 ((n (lambda (_) (lambda (t) (lambda (f) (f (lambda (void) void))))))
		  (lambda (t) (lambda (f) (t (lambda (void) void))))))
	       (((lambda (n)
		   (lambda (m)
		     ((m
		       (lambda (n)
			 (lambda (f)
			   (lambda (z)
			     (((n (lambda (g) (lambda (h) (h (g f)))))
			       (lambda (u) z))
			      (lambda (u) u))))))
		      n)))
		 (lambda (f) (lambda (z) z)))
		n))))
	   (lambda (_) (lambda (t) (lambda (f) (f (lambda (void) void))))))
	  (lambda (_) (lambda (f) (lambda (z) (f z)))))
	 (lambda (_)
	   (((lambda (n) (lambda (m) (lambda (f) (lambda (z) ((m (n f)) z))))) n)
	    (f
	     (((lambda (n)
		 (lambda (m)
		   ((m
		     (lambda (n)
		       (lambda (f)
			 (lambda (z)
			   (((n (lambda (g) (lambda (h) (h (g f)))))
			     (lambda (u) z))
			    (lambda (u) u))))))
		    n)))
	       n)
	      (lambda (f) (lambda (z) (f z)))))))))))))

(define (succ n) (+ n 1))

(define (natify church-numeral)
  ((church-numeral succ) 0))

(define main
  (print (natify l)))
